Find error here
- Task [maas-provision : Wait for node to be fully provisioned]
SHELL CMD: /usr/local/bin/get-node-prov-stat => status “1”
if complete provisioning, the output will be 2
Dig into the detail
In log /etc/maas/ansible/logs/node-
Find out the problem - juju-compute-setup
Dig into detail by using
1 | --- |
1 | ubuntu@nasty-ground:~$ python |
sys.path has the priority, so the urllib3 at /usr/local/lib/python/dist-packages will be included first.
In urllib3 1.7.1 didn’t have the dictionary Key_fn_by_scheme
, the different implementation cause the issue.
solution is to remove the 1.24 version
sudo pip uninstall urllib3
Check version again
1 | import urllib3 |
restart nova-compute service
sudo service nova-compute restart # this step can skip
Get back into head, type 1
2
3
4
5
6
7
8
9
10
11
12
13
![](https://i.imgur.com/hemhFzj.png)
Manually fixed the issue
`juju resolved --retry nova-compute/0`
---
Wait for around 10 minute to get this result
![](https://i.imgur.com/TVta7KV.png)
Check by using the same command ```juju status --format=tabular
Since our compute node has already provisioned, modify the playbook here.
- ~/cord/build/ansible/roles/maas-provision/tasks/main.yml
status 6 means provisioned
1 | - name: Wait for node to become ready │······ |
rebuild by the following command
1 | tear down and clean profile |
Result
original task observation
nova output
- XOS output
Root case
This is an issue with how Python packages are installed and upstream in urllib3/requests.
https://github.com/urllib3/urllib3/issues/1456
lots of developer facing the same problem from the new release urllib3